/**
 * Copyright (c) 2019-2029, wwww.kiwipeach.cn (liuburu@qq.com).
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * <p>
 * https://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package cn.kiwipeach.blog.controller.demo;

import org.apache.shiro.authz.annotation.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 描述：shiro权限控制测试(RBAC权限模型)
 *
 * @author kiwipeach
 * @since 2.0
 */
@Controller
@RequestMapping("rbac")
@ResponseBody
public class ShiroRBACDemoController {


    @GetMapping("anno")
    @RequiresGuest
    public String annoPage() {
        return "匿名用户";
    }

    @GetMapping("user")
    @RequiresUser
    public String userPage() {
        return "需要用户登录，记住我登录无效";
    }

    @GetMapping("authentication")
    @RequiresAuthentication
    public String authenticationPage() {
        return "需要用户登录，记住我登录有效";
    }

    @GetMapping("role")
    @RequiresRoles(value = {"user"})
    public String rolePage() {
        return "需要用户角色'user'";
    }

    @GetMapping("permission")
    @RequiresPermissions("sys:blog:delete")
    public String permissionPage() {
        return "需要删除权限'sys:blog:delte'";
    }

}
